One or more aspects relate, in general, to communications networks, and in particular, to the performance of such networks.
In one example, a communications network has multiple pairs of servers communicating simultaneously. The communicating includes sending and receiving messages between the communications servers. Such a communications network provides a number of simultaneous communications paths, and one or more of the paths typically has multiple communications stages, thereby providing a multi-stage communications network (a.k.a., a multi-stage network). In general, a multi-stage network includes a number of stages, each consisting of a set of switching elements.
In a multi-stage network where there are shared resources, it is difficult to provide a design that has a correct network topology and interconnections, and to provide routing information to the switches in the system to be able to communicate messages from one server to the other. When a communications network is simultaneously used by multiple communicating servers, there is often interference in the network resources among the messages sent and received between the communicating servers. This interference results in lower performance than if the servers were communicating alone on the network.
In an attempt to obtain the best performance from the resulting system, it is possible to vary both the network configuration and the routing techniques. It is a standard practice to make educated guesses as to the best topologies and routing techniques, and then, to validate the performance after the system is actually constructed and running.